#! /usr/bin/env python3
# -*- coding: utf-8 -*-

"""
循环单向链表实现
"""


class Node:
    """
    存放节点类
    每次调⽤该类，实例化⼀个节点
    默认每个节点中有数据区，next区。
    数据区为该数据，next区为空
    """

    def __init__(self, item, next=None):
        self.item = item
        self.next = next


class CSingleLinklist:
    """循环单向链表"""
    def __init__(self, tail=None):
        # 定义尾结点，头结点可以表示为tail.next
        self.tail = tail

    def is_empty(self):
        if self.tail:
            return False
        return True

    def append(self, item):
        # 尾端插入结点
        node = Node(item)
        # 空链表时，头结点的next需要指向自己
        if not self.tail:
            node.next = node
            self.tail = node
        node.next = self.tail.next
        self.tail.next = node
